package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 检测任务对象 detection_task
 * 
 * @author ruoyi
 * @date 2025-10-22
 */
public class DetectionTask extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 任务ID（主键） */
    private Long taskId;

    /** 任务编号 */
    @Excel(name = "任务编号")
    private String taskCode;

    /** 关联样品ID */
    @Excel(name = "关联样品ID")
    private Long sampleId;

    /** 检测类型 */
    @Excel(name = "检测类型")
    private String detectionType;

    /** 要求完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "要求完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date requireTime;

    /** 实际完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "实际完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualCompleteTime;

    /** 操作员ID */
    @Excel(name = "操作员ID")
    private Long operatorId;

    /** 任务状态（0-未开始，1-进行中，2-已完成，3-异常） */
    @Excel(name = "任务状态", readConverterExp = "0=-未开始，1-进行中，2-已完成，3-异常")
    private Long status;

    public void setTaskId(Long taskId) 
    {
        this.taskId = taskId;
    }

    public Long getTaskId() 
    {
        return taskId;
    }

    public void setTaskCode(String taskCode) 
    {
        this.taskCode = taskCode;
    }

    public String getTaskCode() 
    {
        return taskCode;
    }

    public void setSampleId(Long sampleId) 
    {
        this.sampleId = sampleId;
    }

    public Long getSampleId() 
    {
        return sampleId;
    }

    public void setDetectionType(String detectionType) 
    {
        this.detectionType = detectionType;
    }

    public String getDetectionType() 
    {
        return detectionType;
    }

    public void setRequireTime(Date requireTime) 
    {
        this.requireTime = requireTime;
    }

    public Date getRequireTime() 
    {
        return requireTime;
    }

    public void setActualCompleteTime(Date actualCompleteTime) 
    {
        this.actualCompleteTime = actualCompleteTime;
    }

    public Date getActualCompleteTime() 
    {
        return actualCompleteTime;
    }

    public void setOperatorId(Long operatorId) 
    {
        this.operatorId = operatorId;
    }

    public Long getOperatorId() 
    {
        return operatorId;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("taskId", getTaskId())
            .append("taskCode", getTaskCode())
            .append("sampleId", getSampleId())
            .append("detectionType", getDetectionType())
            .append("requireTime", getRequireTime())
            .append("actualCompleteTime", getActualCompleteTime())
            .append("operatorId", getOperatorId())
            .append("status", getStatus())
            .toString();
    }
}
